home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
676-700
/
687
/
xsb
/
psychedelic
/
blank.c
next >
Wrap
C/C++ Source or Header
|
1995-03-18
|
2KB
|
88 lines
#include "/xsb.h"
struct GfxBase *GfxBase;
struct IntuitionBase *IntuitionBase;
#define rnd(x) (rand()%(x))
void srand(int);
int rand(void);
struct XSBPref defpref;
extern struct Custom __far custom;
void __saveds XSBBlankScreen(long signum,struct XSBInfo *xsbi)
{
struct RastPort *rp;
struct ViewPort *vp;
struct Screen *scr;
struct timerequest *tr=xsbi->tr;
struct XSBPref *pref=xsbi->prefs;
defpref.xsb_arg=10;
if(pref) defpref=*pref;
srand(scr);
GfxBase=OldOpenLibrary("graphics.library");
IntuitionBase=OldOpenLibrary("intuition.library");
if(scr=OpenScreenTags(0,SA_Width,320,SA_Height,256,
SA_DisplayID,LORES_KEY,
SA_Type,CUSTOMSCREEN|SCREENQUIET,
SA_Quiet,TRUE,
SA_Depth,4,
TAG_DONE))
{
custom.dmacon=(1<<5);
rp=&scr->RastPort;
vp=&scr->ViewPort;
while(!(SetSignal(0,signum)&signum)) {
SetRGB4(vp,rnd(15),rnd(15),rnd(15),rnd(15));
SetAPen(rp,rnd(15));
switch(rnd(7)) {
case 0:
case 1:
case 2: WritePixel(rp,rnd(320),rnd(256)); break;
case 3:
case 4: Move(rp,rnd(320),rnd(256)); Draw(rp,rnd(320),rnd(256)); break;
case 5: DrawEllipse(rp,90+rnd(140),60+rnd(80),3+rnd(83),3+rnd(52)); break;
case 6: RectFill(rp,rnd(160),rnd(128),160+rnd(320),128+rnd(128)); break;
}
tr->tr_node.io_Command=TR_ADDREQUEST;
tr->tr_time.tv_secs=0;
tr->tr_time.tv_micro=defpref.xsb_arg*10;
DoIO(tr);
}
CloseScreen(scr);
}
CloseLibrary(GfxBase);
CloseLibrary(IntuitionBase);
}
char * __saveds XSBGetID(void)
{
return("XSB Psychedelic Blanker\n\nGives some more or less\nnice psychedelic effects.");
}
char *cyl[]={"Sel1","Sel2","Sel3","Sel4",0};
struct XSBPref defpref4;
struct XSBPref defpref3;
struct XSBPref defpref2;
struct XSBPref defpref1;
struct XSBParams parm4={0,XSBP_STRING,"String:",0,0,0,&defpref4};
struct XSBParams parm3={&parm4,XSBP_BOOL,"Checkbox:",0,0,0,&defpref3};
struct XSBParams parm2={&parm3,XSBP_INTEGER,"Int:",0,0,0,&defpref2};
struct XSBParams parm1={&parm2,XSBP_CYCLE,"Cycle:",cyl,0,0,&defpref1};
struct XSBParams parm={&parm1,XSBP_SLIDER,"Speed:",0,1,99,&defpref};
struct XSBParams * __saveds XSBGetParams(void)
{
defpref1.xsb_arg=2;
defpref2.xsb_arg=4242;
defpref3.xsb_arg=5;
strcpy(defpref4.xsb_string,"Teststring");
return(&parm);
}